const { Controller } = require("egg");

/**
 * @Controller 权限管理
 */
class AclController extends Controller {
    /**
     * @summary 添加一个权限
     * @description 添加一个权限，包括前端和后端的权限
     * @router post /acls
     * @request body CreateAclRequest * 要保存的请求数据
     * @response 201 BaseResponse 添加成功
     */
    async create() {
        // 校验参数
        this.ctx.validate(this.ctx.rule.CreateAclRequest);
        // 保存到数据库
        await this.service.acl.add(this.ctx.request.body);
        // 响应
        this.ctx.helper.send(201, "添加成功");
    }

    /**
     * @jwt
     * @summary 权限列表
     * @description 返回符合条件的权限列表
     * @router get /acls
     * @request query number type 查询请求
     * @response 200 BaseResponse 请求成功
     */
    async index() {
        // 校验参数
        this.ctx.validate(this.ctx.rule.QueryAclRequest, this.ctx.query);
        // 查询数据库
        const res = await this.service.acl.readListByQuery(this.ctx.query.type);
        // 返回响应
        this.ctx.helper.send(200, res);
    }
}

module.exports = AclController;
